<?php
// 默认情况下，所有常量、类和函数名都放在全局空间下，就和PHP支持命名空间之前一样。命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间，它必须在其它所有代码之前声明命名空间。语法格式如下；
// namespace MyProject;

// class Connection
// {
// }
// function connect()
// {
// }

// namespace AnotherProject;

// const CONNECT_OK = 1;

// class Connection
// {
// }
// function connect()
// {
// }

// 不建议使用这种语法在单个文件中定义多个命名空间。建议使用下面的大括号形式的语法。
// namespace MyProject {
//     const CONNECT_OK = 1;
//     class Connection { /* ... */ }
//     function connect() { /* ... */  }
// }

// namespace AnotherProject {
//     const CONNECT_OK = 1;
//     class Connection { /* ... */ }
//     function connect() { /* ... */  }
// }

//将全局的非命名空间中的代码与命名空间中的代码组合在一起，只能使用大括号形式的语法。全局代码必须用一个不带名称的 namespace 语句加上大括号括起来，例如：


declare(encoding='UTF-8'); //定义多个命名空间和不包含在命名空间中的代码
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace { // 全局代码
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>